import axios from 'axios'
import Loading from '../util/class.loading'

axios.$Loading = new Loading('loading-dom', 'loading...')
axios.defaults.baseURL = process.env.VUE_APP_BASE_URL
axios.defaults.timeout = 30 * 1000

axios.$Loading.hide()
// 请求拦截
axios.interceptors.request.use(config => {
  // show loading
	if (!config.hideLoading) {
		axios.$Loading.show(config.$Loading || '')
	}
  return config
}, error => {
  return Promise.reject(error)
})

// 响应拦截
axios.interceptors.response.use(response => {
  // hide loading
  axios.$Loading.hide()
  // 请求成功
  // 1. 根据自己项目需求定制自己的拦截
  // 2. 然后返回数据
  return response
}, error => {
  // axios.$Loading.hide()
  // 请求失败
  if (error && error.response) {
      switch (error.response.status) {
      case 400:
          // 对400错误您的处理
          break
      case 401:
          // 对 401 错误进行处理
          break
      default:
          // 如果以上都不是的处理
          return Promise.reject(error)
      }
  }
})